package com.cw2.behavioral.observer;

import java.util.ArrayList;
import java.util.List;

/**
 * 主播
 * 双向观察
 */
public class MMTikToker extends AbstractTikToker{

    /**
     * 观察者的核心
     * 定义粉丝数组,让粉丝观察主播
     */
    List<AbstractFans> fansList =  new ArrayList<AbstractFans>();


    /*开始直播*/
    void startSell(){
        System.out.println("开启直播");
        notifyFans("晚上9点开启直播");
    }

    void endSell(){
        System.out.println("关闭直播");
        notifyFans("直播已经结束");
    }




    /*--------------------------------------------*/
    /**
     * 添加粉丝
     * @param fans 粉丝
     */
    @Override
    void addFans(AbstractFans fans) {
        fansList.add(fans);
    }

    /**
     * 通知粉丝
     * @param msg 消息通知
     */
    @Override
    void notifyFans(String msg) {
        for (AbstractFans abstractFans : fansList) {
            abstractFans.acceptMsg(msg);
        }
    }
}
